/**
 * Storage 二次封装
 */
import config from "../config";

export default {
  // 设置一个新的属性存储
  setItem(key, val) {
    let storage = this.getStorage();
    storage[key] = val;
    window.localStorage.setItem(config.namespace, JSON.stringify(storage));
  },

  // 获取一个属性的值
  getItem(key) {
    return this.getStorage()[key];
  },

  // 获取整个存储的对象信息
  getStorage() {
    return JSON.parse(window.localStorage.getItem(config.namespace) || "{}");
  },

  // 删除某个属性
  clearItem(key) {
    let storage = this.getStorage();
    delete storage[key];
    // 删除后需要重新存储
    window.localStorage.setItem(config.namespace, JSON.stringify(storage));
  },

  // 删除整个存储的对象
  clearAll() {
    window.localStorage.clear();
  },
};
